From f1d6a0a4edb2f14fea045b53bceed05ce9246f8c Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 19 Oct 2019 05:15:15 +0200 Subject: [PATCH] widget: Add gtk_widget_get_size() A little bit of convenience. --- docs/reference/gtk/gtk4-sections.txt | 1 + gtk/gtkwidget.c | 25 +++++++++++++++++++++++++ gtk/gtkwidget.h | 3 +++ 3 files changed, 29 insertions(+) diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt index 085b77d7ca..97d20ece0b 100644 --- a/docs/reference/gtk/gtk4-sections.txt +++ b/docs/reference/gtk/gtk4-sections.txt @@ -4011,6 +4011,7 @@ gtk_widget_get_allocation gtk_widget_get_allocated_baseline gtk_widget_get_width gtk_widget_get_height +gtk_widget_get_size gtk_widget_compute_bounds gtk_widget_compute_transform gtk_widget_compute_point diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 27bec07c23..f667a5d8d4 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -12254,6 +12254,31 @@ gtk_widget_get_height (GtkWidget *widget) return priv->height; } +/** + * gtk_widget_get_size: + * @widget: a #GtkWidget + * @orientation: the orientation to query + * + * Returns the content width or height of the widget, depending on @orientation. + * This is equivalent to calling gtk_widget_get_width() for %GTK_ORIENTATION_HORIZONTAL + * or gtk_widget_get_height() for %GTK_ORIENTATION_VERTICAL, but can be used when + * writing orientation-independent code, such as when implementing #GtkOrientable + * widgets. + * + * Returns: The size of @widget in @orientation. + */ +int +gtk_widget_get_size (GtkWidget *widget, + GtkOrientation orientation) +{ + g_return_val_if_fail (GTK_IS_WIDGET (widget), 0); + + if (orientation == GTK_ORIENTATION_HORIZONTAL) + return gtk_widget_get_width (widget); + else + return gtk_widget_get_height (widget); +} + /** * gtk_widget_class_set_layout_manager_type: * @widget_class: class to set the layout manager type for diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index 278c1228c7..de0cf97ed8 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -525,6 +525,9 @@ GDK_AVAILABLE_IN_ALL int gtk_widget_get_width (GtkWidget *widget); GDK_AVAILABLE_IN_ALL int gtk_widget_get_height (GtkWidget *widget); +GDK_AVAILABLE_IN_ALL +int gtk_widget_get_size (GtkWidget *widget, + GtkOrientation orientation); GDK_AVAILABLE_IN_ALL gboolean gtk_widget_child_focus (GtkWidget *widget, -- 2.30.2